#ifndef __PROCESS_POOL_HPP__
#define __PROCESS_POOL_HPP__

#include <iostream>
#include <vector>

typedef void(*task_t)(void);

void PrintLog()
{
    std::cout << "我是一个打印日志的任务" << std::endl;
}

void DownLoad()
{
    std::cout << "我是一个下载的任务" << std::endl;
}

void UpLoad()
{
    std::cout << "我是一个上传的任务" << std::endl;
}


class TaskManage
{
public:
    TaskManage()
    {
        srand(time(NULL));
    }
    //加载任务
    void push(task_t task)
    {
        _task.push_back(task);
    }


    
    //随机选择任务
    int choose()
    {
    
        return rand() % _task.size();
    }

    //执行
    void execute(int i)
    {
        if(i < 0 || i > _task.size()) return;
        _task[i]();
    }
    
private:
    std::vector<task_t> _task;
};

#endif